ExtJS একটি শক্তিশালী ফ্রন্টএন্ড ফ্রেমওয়ার্ক, যা ডায়নামিক এবং রিচ ইউজার ইন্টারফেস (UI) উপাদান তৈরি করতে ব্যবহৃত হয়। ExtJS-এ বেশ কিছু বেসিক উইজেট বা কম্পোনেন্ট রয়েছে, যা সাধারণত ওয়েব অ্যাপ্লিকেশনের বিভিন্ন ধরনের ইউজার ইন্টারফেস তৈরিতে ব্যবহৃত হয়। এগুলোর মধ্যে অন্যতম হল Button, Panel, Grid, এবং Form।
Button হলো একটি কমপোনেন্ট যা ইউজারের সাথে ইন্টারঅ্যাকশন করার জন্য ব্যবহৃত হয়। এটি সাধারণত একটি ক্লিকেবল বাটন হিসেবে কাজ করে, যার মাধ্যমে ইউজার কোনো অ্যাকশন ট্রিগার করে।
Ext.create('Ext.button.Button', {
text: 'Click Me', // বাটনের টেক্সট
renderTo: Ext.getBody(), // বাটনটি কোথায় রেন্ডার হবে
handler: function() {
alert('Button Clicked!'); // বাটনে ক্লিক করার পরে যেটি হবে
}
});
এখানে, text
হলো বাটনের টেক্সট এবং handler
হলো সেই ফাংশন যা বাটনে ক্লিক করার সময় রান করবে।
Panel হলো একটি কন্টেইনার কম্পোনেন্ট যা অন্যান্য কম্পোনেন্ট যেমন বাটন, গ্রিড, টেক্সটফিল্ড ইত্যাদি ধারণ করতে পারে। এটি সাধারণত একটি কন্টেইনার হিসেবে ব্যবহৃত হয় যেখানে UI উপাদানগুলোর পজিশন ও লেআউট নিয়ন্ত্রণ করা হয়।
Ext.create('Ext.panel.Panel', {
title: 'My Panel', // প্যানেলের শিরোনাম
width: 300, // প্যানেলের প্রস্থ
height: 200, // প্যানেলের উচ্চতা
html: 'Welcome to ExtJS!', // প্যানেলের ভিতরের HTML কনটেন্ট
renderTo: Ext.getBody() // যেখানে প্যানেল রেন্ডার হবে
});
এখানে, title
প্যানেলের শিরোনাম এবং html
প্যানেলের ভিতরের কনটেন্ট। renderTo
দ্বারা প্যানেলটি কনটেইনারের মধ্যে রেন্ডার হবে।
Grid হলো একটি টেবিল-স্টাইলের কম্পোনেন্ট, যা ডেটা ভিউ এবং ম্যানেজমেন্টের জন্য ব্যবহৃত হয়। এটি ব্যবহার করে ডেটাকে কলাম আকারে প্রদর্শন করা হয় এবং বিভিন্ন ফিচার যেমন সোর্টিং, ফিল্টারিং, পেজিনেশন ইত্যাদি সহজে ইনপুট করা যায়।
Ext.create('Ext.grid.Panel', {
title: 'User List',
store: {
fields: ['name', 'email', 'phone'],
data: [
{ 'name': 'John', 'email': 'john@example.com', 'phone': '12345' },
{ 'name': 'Jane', 'email': 'jane@example.com', 'phone': '67890' }
]
},
columns: [
{ text: 'Name', dataIndex: 'name', flex: 1 },
{ text: 'Email', dataIndex: 'email', flex: 2 },
{ text: 'Phone', dataIndex: 'phone', flex: 1 }
],
renderTo: Ext.getBody()
});
এখানে, store
ডেটার উৎস হিসেবে কাজ করে এবং columns
দ্বারা গ্রিডের কলামসমূহ নির্ধারণ করা হয়। dataIndex
প্রতিটি কলামে প্রদর্শিত ডেটা নির্ধারণ করে।
Form হল একটি UI কম্পোনেন্ট, যা ইউজারের ইনপুট গ্রহণ করতে ব্যবহৃত হয়। ফর্মে বিভিন্ন ধরনের ফিল্ড থাকে যেমন টেক্সটফিল্ড, রেডিও বাটন, চেকবক্স ইত্যাদি, যা ইউজার ডেটা সংগ্রহের জন্য ব্যবহৃত হয়।
Ext.create('Ext.form.Panel', {
title: 'User Form',
width: 300,
bodyPadding: 10,
items: [
{
xtype: 'textfield', // টেক্সটফিল্ড
name: 'name',
fieldLabel: 'Name',
allowBlank: false // ইনপুট শূন্য হতে পারে না
},
{
xtype: 'textfield', // টেক্সটফিল্ড
name: 'email',
fieldLabel: 'Email',
vtype: 'email' // ইমেইল ফরম্যাট ভ্যালিডেশন
}
],
buttons: [
{
text: 'Submit',
handler: function() {
var form = this.up('form').getForm();
if (form.isValid()) {
alert('Form Submitted!');
}
}
}
],
renderTo: Ext.getBody()
});
এখানে, xtype
দ্বারা বিভিন্ন ফর্ম ফিল্ড যেমন textfield
বা radio
নির্বাচন করা হয় এবং allowBlank
, vtype
দ্বারা ইনপুট ভ্যালিডেশন করা হয়। handler
দ্বারা বাটন ক্লিক করার পর যেটি কার্যকর হবে।
ExtJS এর বেসিক উইজেটসমূহ ব্যবহার করে, আপনি খুব দ্রুত এবং দক্ষতার সাথে ইউজার ইন্টারফেস তৈরি করতে পারেন। এগুলি ব্যবহার করে আপনি একাধিক কম্পোনেন্ট কাস্টমাইজ করতে এবং ডেটার উপর কার্যকরী ইন্টারঅ্যাকশন তৈরি করতে পারবেন।